﻿//#include <iostream>
//#include <thread>
//#include <mutex>
//#include <vector>
//
//std::mutex mtx; // 全局互斥锁
//int g_numbers = 0;  // 全局变量
//
//void add_numbers() 
//{
//    for (int i = 0; i < 1000; i ++) 
//    {        // 在作用域内创建 lock_guard 对象，自动加锁        
//        //std::lock_guard<std::mutex> lock(mtx);        // 在这个作用域内，mtx 被锁定        
//        g_numbers++;        // 当 lock_guard 对象超出作用域时，自动解锁    
//    }
//}
//
//int main() 
//{
//    std::vector<std::thread> threads;    
//    int num_threads = 100;
//            
//    for (int i = 0; i < num_threads; i ++) 
//    { 
//        threads.push_back(std::thread(add_numbers)); 
//    }
//            
//    for (auto& t : threads) 
//    { 
//        t.join(); 
//    }    
//    std::cout << "g_numbers: " << g_numbers << std::endl;
//
//    return 0;
//        
//}